Timing reference for scheduling data traffic on multiple ports

ABSTRACT

Data traffic such as cell streams in an ATM communication network frequently contain data destined for multiple output ports having different transmission data rates. In order to accurately schedule such traffic a clocking signal unique to each output data rate is required. This invention provides systems and methods for generating the necessary clock signals utilizing a single timing reference.

FIELD OF THE INVENTION

The present invention relates to the scheduling of data traffic tomultiple output ports having different data rates and more particularlyto the scheduling of such traffic utilizing a single timing reference.

BACKGROUND

The present invention will be described with reference to data trafficmanagement in an asynchronous transfer mode (ATM) network for broadbandcommunications but it is to be understood that the basic conceptdisclosed is applicable to any data traffic management device whichservices multiple output ports having different data transmission rates.

Asynchronous transfer mode (ATM) is a networking technology thatprovides broadband communications and differentiated qualities ofservice (QoS). The technology, which utilizes a fixed length cell, iswell-suited to the transmission of voice, video and data utilizing bothreal-time and non-real-time service categories. Statistical multiplexingis used in ATM switches to allow for a high efficiency of resourceutilization. In order to take advantage of the statistical nature of ATMtraffic and still ensure some guaranteed QoS to network data it isimportant that the streams of ATM data conform to certain specificparameters. These parameters and the guaranteed qualities of servicemake up the traffic contract as established by the ATM TrafficManagement Forum.

In ATM switches it is often useful and/or necessary to shape or scheduleATM cells from various traffic streams. This scheduling ensures that thetraffic conforms to the specified parameters for each particular streamwhich leads to better overall network performance. There areapplications where a shaping entity in an ATM system needs to schedule amixture of traffic which is bound for several output ports. Each ofthese output ports may have a different data rate parameter. Therequirement to service multiple data streams to output ports havingdifferent data rates requires or at least implies that the schedulingentity must adopt a different timing reference for each output port.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide systems and methodsfor scheduling data traffic onto several ports with each port having adifferent data rate using only a single timing reference as an input tothe traffic scheduling device.

In a specific embodiment of the invention the systems and methods applyto an ATM communication network.

Therefore, in accordance with a first aspect of the present invention,there is provided in a data traffic management system having a pluralityof output ports for servicing data traffic of different data rates and ascheduling device having a plurality of data calendars for shaping datatraffic destined for each of said output ports, a single timingreference to schedule transmission of data to appropriate output ports.The single timing reference comprises timing means to generate a clockpulse based on the data rate of the output port having the fastest datarate; counter means to continually count the clock pulses following aninitialization event; increment means to dynamically compare theaccumulated number of clock pulses with predetermined increments foreach calendar based on the data rate assigned thereto; and thresholdmeans responsive to inputs from said increment means to controltransmission of data traffic from each of said calendars.

In a first embodiment the clock pulse is equal to the data rate of thedata traffic of the output port having the fastest data rate.

In this embodiment a first-in, first-out buffer is positioned in advanceof the output port to absorb the bursty nature of the calendar output.

In accordance with a second embodiment the clock pulse is ‘n’ timesfaster than the data rate of the output port having the fastest datarate. It is anticipated that ‘n’ will be at least 10.

In accordance with a second aspect of the present invention there isprovided a method of providing a timing reference to a data trafficmanagement system, the system having a plurality of output ports eachconfigured to transmit data at a different data rate and a schedulingdevice having a calendar for shaping data traffic for delivery to eachof said output ports. The method comprises the steps of continuallygenerating a clock pulse based on the data rate of the output porthaving the fastest data rate; counting the accumulated clock pulsesfollowing an initialization event; dynamically comparing the accumulatedclock pulses with predetermined increment values for each calendar basedon an assigned data rate for each calendar; and controlling transmissionof data from the calendars from appropriate output ports in response toinput signals generated by threshold means when the accumulated clockpulses and increment values reach a threshold respecting each calendar.

DESCRIPTION OF THE DRAWINGS

The invention will now be described in greater detail with reference tothe attached drawings wherein:

FIG. 1 represents a simple calendar operation for connection scheduling;

FIG. 2 is a block diagram showing a single timing reference according toa first aspect of the invention; and

FIG. 3 is a block diagram of a timing reference input according to asecond embodiment.

DETAILED DESCRIPTION OF THE INVENTION

The basic concept of calendar-based scheduling is illustrated in FIG. 1.Calendar scheduling is used in ATM applications to decide when totransmit a cell from a given connection. This scheduling is directlyapplicable to a shaping function. Time is generally referenced in celltimes where one cell time is the time from when the first bit of onecell passes a reference point until the time when the first bit of thenext cell passes the reference point. As an example, one cell time on anOC3 link is about 2.83 us. Each time the calendar current time isadvanced, this is called a “tick”. As the current time moves forward,based on some generated or provided timing reference, the current timewill pass a connection's scheduled transmit time. These are virtualconnections (VC) in FIG. 1. When the current time passes a VC'sscheduled time, then a cell from that VC will be transmitted, or placedin a transmit queue, and that VC will be rescheduled on the calendar fora later time. In FIG. 1 virtual channels (VC1 and VC2) are transmittingat the same speed while VC3 is at a slower data rate. Thus, as shown inFIG. 1, when the current time advances by a “tick” a cell is transmittedfrom each VC and that VC is rescheduled for a later time slot in thecalendar for the VC which his scheduled at that time.

If a scheduling device is scheduling for several output ports, then acalendar will exist for each port. It is within the scope of the presentinvention to have a physical calendar for each port or a system whichuses a single calendar to emulate the operation of multiple calendars.For each of the calendars, the cell time may be different because thedata rate of each port may be different.

The difference in cell times means that the current timemarker/indicator for each calendar will be moved forward at a differentrate. For example the data rate of ATM cells on an OC3 link is 149.76Mb/s which means that one cell time is 2.83 us. On a DS3 link (DirectMapped), the data rate is 44.21 Mb/s which means that one cell time is9.59 us. Consequently, a calendar that services an OC3 link would stepthe current time marker forward once every 2.83 us while a calendar thatservices a DS3 link (Direct Mapped) would step the current time markerforward once every 9.59 us.

The present invention provides two separate embodiments relating tosystems and methods for using a single time source to schedule trafficonto multiple ports wherein the data rate of each port is different.

The first embodiment is shown in a block diagram of FIG. 2. As shown aplurality of output ports, 12, 14, 16, are shown and further identifiedas port 1, port 2 and port n. Each port includes a FIFO 18 for queuingand transmitting data traffic according to the data rate of theparticular port. Each port continuously monitors the data rate of thedata being transmitted therefrom and this data rate information isprovided to Clock Selection Device 20 via lines 22. Clock SelectionDevice 20 monitors each of the data rates and selects the fastest rateto provide a master clock pulse to Data Scheduling Device 24. As shownin FIG. 2 Scheduling Device 24 includes calendars 26, 28 and 30 whereineach calendar shapes data traffic for port 1, port 2 and port nrespectively.

For every clock event received by the Scheduling Device 24 a decisionmust be made for each calendar as to whether that calendar should be“ticked” or advanced. To decide whether to advance each of the calendarsa counter, an increment device, and a threshold device are used. Eachcalendar has the following values associated with it:

-   1) Counter,-   2) Tick_Increment,-   3) No_Tick_Threshold.

The Counter is initialized to zero and the other two parameters areinitialized to specific values that are calculated based on the portspeed associated with the calendar and also on the port speed of thefastest port. This is necessary since the fastest port provides theMaster Cell Tick 32.

Whenever a Master Cell Tick occurs each calendar will add Tick_Incrementto the Counter. As long as the Counter is less than theNo_Tick_Threshold then the calendar is ticked and a cell is sent to theport associated with the Counter. When the Counter is greater than orequal to the No_Tick Threshold then the value of Counter is decrementedby the value of No_Tick_Threshold and the calendar is not ticked.

The following is a pseudo-code that illustrates the algorithm describedabove:

Service_Tick_Begin: for each calendar Counter = Counter + Tick_Incrementif Counter >= No_Tick_Threshold Counter = Counter − No_Tick_Thresholdelse tick the calendar & send a cell endif next Service_Tick_End

For the calendar that is servicing the fastest port, Tick_Increment willbe zero and No_Tick_Threshold will be set to one. These values willensure that the calendar is ticked for every Master Cell Tick.

For all the other calendars which are servicing ports that are slowerthan the reference provided by Master Cell Tick, values forTick_Increment and No_Tick_Threshold must be chosen in a manner thatensures that the calendar is occasionally not ticked when a Master CellTick occurs. Thus, for every Master Cell Tick, one calendar (the fastestport) will tick but all the other calendars will go through a cycle thatlooks like: tick-tick-tick-tick-no tick-tick-tick-tick-tick-no tick.This occasional “no tick” has the effect of lowering the effective rateat which the calendar is being ticked.

Given the port rate for the fastest port and the rate of the port that aparticular calendar is servicing, appropriate values for Tick_Incrementand No_Tick_Threshold can be chosen so that the effective cell rate outof the calendar scheduling is equal to the cell rate of that port. Thevalues used for all the calendar parameters should be in arepresentation that supports fractional values for better accuracy.FIFOs at each port are required to absorb the bursty nature of thecalendar servicing created by this method.

In this manner, all calendars (that may service ports with differentrates) can be effectively ticked at their appropriate rate using onlythe single timing input called Master Cell Tick. A given calendar willbe ticked several times at the fastest rate, and then pause for a tick,and then tick again at the fastest rate, and then pause for a tick, andso on.

The second embodiment of the present invention is shown in FIG. 3. Inthis embodiment the same output ports 12, 14 and 16 and FIFO 18 areillustrated. In this embodiment, however, the Clock Selection Device isnot used but rather a Master Clock 42 which is ‘n’ times faster than thecell rate of the fastest output port is provided to scheduling device24. In a preferred embodiment the value of n is 10 or more. As anexample, if the fastest cell rate is 100,000 cells per second, then theMaster Clock Rate would be 1 MHz or 1,000,000 clocks per second.

The Master Clock is used to decide when to tick (and thus send a cell)each of the calendars managed by the scheduling device. In essence, eachcalendar will be scheduled by using the Master Clock and twoper-calendar parameters. A counter that may be called Global Time isincremented by one for each Master Clock event. Thus, Global Time willcontinually increment at a rate at least 10 times faster than the cellrate of the fastest port.

Each calendar has the following values associated with it:

-   -   1) Increment,    -   2) Next_Tick_Time.

The Global Counter is initialized to zero and Next_Tick_Time for eachcalendar is set equal to its calendar Increment.

For every Master Clock event, the Global Time value will increase. Eachcalendar will then compare its Next_Tick_Time to the Global Time. If theGlobal Time has passed the Next_Tick_Time, then that particular calendarmust be ticked. The Next_Tick_Time will then be incremented by theIncrement, which essentially schedules the calendar again for some timein the future. The Increment for each calendar is chosen based on therate of the Master Clock and the rate of the port that the calendarservices. Each calendar Increment can be chosen so that the calendar isticked at the cell rate of the port.

Here is some pseudo-code that illustrates the algorithm described above:

Service_Master_Clock_Event_Begin: Global_Time = GlobalTime + 1 for eachcalendar if Global_Time >= Next_Tick_Time tick the calendar & send acell Next_Tick_Time = Next_Tick_Time + Increment endif nextService_Master_Clock_Event_EndWith this method, all the calendars servicing ports with different datarates can be ticked at their appropriate cell rate, using only thesingle input timing reference.

While particular embodiments of the invention have been described andillustrated it will be apparent to one skilled in the art that stillother variations to the basic concept can be implemented. It is to beunderstood that such variations will also fall within the scope of theinvention as defined by the appended claims.

1. In a data traffic management system having a plurality of outputports for servicing data traffic of different data rates and ascheduling device having a plurality of data calendars for shaping datatraffic destined for each of said output ports, a single timingreference to schedule transmission of data to appropriate output portscomprising: timing means to generate a clock pulse based on the datarate of the output port having the fastest data rate; counter means tocontinually count the clock pulses following an initialization event;increment means to dynamically compare the accumulated number of clockpulses with predetermined increments for each calendar based on the datarate assigned thereto; and threshold means responsive to inputs fromsaid increment means to control transmission of data traffic from eachof said calendars.
 2. A timing reference as defined in claim 1 whereinsaid clock pulse is equal to the data rate of the data traffic of theoutput port having the fastest data rate.
 3. A timing reference asdefined in claim 2 wherein said threshold means controls said calendarmeans to prevent transmission of data traffic in response to an inputfrom said increment means.
 4. A timing reference as defined in claim 1further comprising a first-in-first-out buffer between said calendarsand said output ports.
 5. A timing reference as defined in claim 1wherein an input from said increment means causes said counter means tobe re-initialized.
 6. A timing reference as defined in claim 1 whereinsaid clock pulse is n times faster than the data rate of the output porthaving the fastest data rate.
 7. A timing reference as defined in claim6 wherein said threshold means controls said calendar means to transmitdata traffic in response to an input from said increment means.
 8. Atiming reference as defined in claim 7 wherein said clock pulse is atleast 10 times faster than the data rate of the fastest output port. 9.A method of providing a timing reference to a data traffic managementsystem, the system having a plurality of output ports each configured totransmit data at a different data rate and a scheduling system having acalendar for shaping data traffic for delivery to each of said outputports, the method comprising: continually generating a clock pulse basedon the data rate of the output port having the fastest data rate;counting the accumulated clock pulses following an initialization event;dynamically comparing the accumulated clock pulses with predeterminedincrement values for each calendar based on an assigned data rate foreach calendar; and controlling transmission of data from said calendarsto appropriate output ports in response to the accumulated clockgenerated by threshold means when the accumulated clock pulses andincrement value reaching a threshold respecting each calendar.
 10. Amethod as defined in claim 9 wherein the clock pulse equals the fastestdata rate and the data transmitted from the output ports is controlledsuch that no data is transmitted in response to an input signal.
 11. Amethod as defined in claim 9 wherein the clock pulse rate is ‘n’ timesfaster than the fastest data rate and the data transmitted from theoutput port is controlled such that data is transmitted in response toan input signal.
 12. A method as defined in claim 11 wherein ‘n’ is atleast
 10. 13. A communication system having a plurality of ports withrespective data rates, each one of said ports being associated with acalendar having a plurality of successive calendar time slots forindicating data, or absence thereof, to be transmitted; a pointerpointing to one of the time slots; and a calendar clock pulse foreffecting transmission of data, in accordance with the calendar timeslot pointed to by the pointer, the transmission of data being onto theport associated with the calendar, and advancing the pointer to a nextcalendar time slot, the system comprising: means for generating a masterclock pulse at a rate greater than or equal to the highest of therespective data rates of the plurality of ports; and means for derivingthe calendar clock pulse for each calendar based on said master clockpulse, so as to have a rate not higher than the data rate of the portassociated with the calendar.
 14. A communication system as defined inclaim 13, wherein said means for generating a master clock pulse relieson a clock signal received from the port having the highest data rate.15. A communication system as defined in claim 14, wherein the rate ofthe calendar clock pulse for each calendar is approximately equal to thedate rate of its associated port.
 16. A communication system as definedin claim 15 having means to calculate an increment value and a tickthreshold value based on the calendar clock pulse and data rate of eachport and said means for deriving said calendar clock pulse for eachcalendar based on said master clock pulse further has: a port counterhaving means to accumulate said calculated increment value; means forgenerating said calendar clock pulse, if said accumulated incrementvalue is lower than said calculated tick threshold value; and means fordecrementing said port counter by a predetermined decrement value, ifsaid accumulated increment value is greater than or equal to saidcalculated tick threshold value.
 17. A communication system as definedin claim 13, wherein said means for generating a master clock pulsegenerates a pulse n times faster than the date rate of the port havingthe highest data rate.
 18. A communication system as defined in claim 17wherein said means for deriving the calendar clock pulse for eachcalendar based on the master clock pulse further comprises: a globalcounter that is incremented by one unit value for each master clockpulse; and means for generating said calendar clock pulse andsubsequently incrementing a port counter by a predetermined incrementvalue if a value of said global counter is equal to or greater than saidport counter.
 19. A method for transmitting data on multiple portshaving different data rates, each of said ports being associated with acalendar having a pointer pointing to one of a plurality of calendartime slots which indicate data, if any, to be transmitted, and acalendar clock pulse for triggering the transmission of said data, ifany, onto one of said ports and thereafter advancing the pointer to anext calendar time slot, the method comprising the steps of: generatinga master clock pulse having a rate that is equal to or greater than thedata rate of the port having the highest data rate; and deriving acalendar clock pulse based on the master clock pulse, such that the rateof transmission from the calendar is less than or equal to the data rateof the port associated with the calendar.
 20. The method as defined inclaim 19 wherein said master clock pulse is derived from the data rateof the port having the fastest rate.
 21. The method as defined in claim20 wherein the step of deriving a calendar clock pulse based on themaster clock pulse further comprises: incrementing a port counter by apredetermined increment value; generating said calendar clock pulse ifsaid port counter has a value lower than a predetermined tick threshold;and decrementing said port counter by a predetermined decrement value ifsaid port counter has a value greater than or equal to saidpredetermined tick threshold.
 22. The method as defined in claim 21wherein said master clock pulse is n times greater faster than the datarate of the port having the fastest data rate.
 23. The method as definedin claim 22 wherein said step of deriving a calendar clock pulse basedon the master clock pulse further comprises the steps of: incrementing aglobal counter by a unit value; and generating said calendar clockpulse, if said said global counter is greater than or equal to a portcounter, and subsequently incrementing said port counter by apredetermined increment value.